草庐IT

python - Element Tree对xpath的限制

全部标签

python - 如何在 Span 标签之间获取文本 XPATH Python

我正在使用这个网站https://www.pealim.com/dict/?page=1.所以我基本上想获得希伯来语单词及其发音。下面是我的代码,它循环遍历所有td标签,但是,它产生完全相同的输出,即以下{'latin':'av','hebrew':u'\u05d0\u05b8\u05d1'}此代码仅适用于page=1。我很想知道是否有任何自动循环遍历每个页面的方法。importrequestsfromlxmlimportetreeresp=requests.get("https://www.pealim.com/dict/?page=1")htmlparser=etree.HTMLP

xml - 在 W3C 的 XML 模式语言 (XSD) 中是否可以允许一系列元素以任意顺序排列但仍然限制出现次数?

我知道all和choice,但它们没有说明我确实希望某些元素能够多次出现的情况,例如:我可以使用sequence,但我更愿意让这些child以任何顺序排列。我可以使用any,但我不能使用多个ThingC。我可以使用choice,但我无法将ThingA和ThingB限制为0或1。我想我可能已经在某处读到这在XSD中很难或不可能,但使用RELAXNG可能是可能的。不幸的是,我不记得我是在哪里读到的。感谢您的帮助! 最佳答案 没错:您不能在XMLSchema中做您想做的事,但您可以在RELAXNG中使用:您在XML架构中的选项是:添加一个

xml - XPath 选择

我在编写XPath表达式来选择包含某些元素的节点时遇到问题,同时排除了我不感兴趣的该元素的sibling。我怀疑这不能单独使用XPath完成,我需要使用XSLT。使用这个源文件val1val2val3val4val5val6val7val8val9val10val11我想生成这个结果val4val11这可以用XPath完成吗?如果不是,我应该使用什么XSLT转换? 最佳答案 XPath用于选择特定的节点,它不会给你一个你想要的树结构。顶多可以从中得到一个节点列表,从节点列表中推导出树结构。如果您真正想要的只是选择有趣的属性,您可以试

xml - 用于根据当前节点的内容选择父节点的 XPath?

我有一个XML文档,其中的部分类似于以下内容:100202110122211022223在某些时候,我让XSLfor-each语句循环遍历每个版本,然后依次遍历每个文件列表。当我遍历每个文件时,我想获取有关哪些其他版本不包含相同文件ID的信息。(因此,例如,当我在版本100中迭代文件20时,我想获得指向版本101和102的指针,但是当我在同一包中迭代文件21时,我只想要一个指向版本102的指针.)有没有办法用XPath做到这一点?我想出的最接近的事情是:../../../release[not(file_list/file/id=./id)]...这当然会失败,因为在方括号内,'./'

xml - 具有基于变量的小数位数的 XPath 格式数字?

我有一个XML文档,其中应报告特定xs:decimal的小数位数保存在同级节点中。我目前正在努力寻找一种简单的方法来通过format-number函数输出它。我可以使用其他一些函数构建一个图片字符串,但是对于本应(至少在我看来)相对简单和常见的任务来说,这似乎过于冗长了。例如我目前正在做的是这样的:有没有更好的办法? 最佳答案 很好的问题!这通常意味着,我不知道答案,但我希望其他人知道,因为这对我来说也是一种痛苦。无论如何,我做了一些搜索,我认为round-half-to-even函数可能会成功(http://www.xqueryf

python - 如何在 Python 中检索 xml 标签的属性?

我正在寻找一种在python中向xml标记添加属性的方法。或者创建一个具有新属性的新标签例如,我有以下xml文件:.......我想添加一个属性使它看起来像这样:.......我如何用python做到这一点?顺便一提。我为此使用python和minidom请帮忙。提前致谢 最佳答案 您可以使用attributes相应Node对象的属性。例如:fromxml.dom.minidomimportparseStringdocumentNode=parseString("")typesNode=documentNode.firstChild

python - 将数据写入 xml 文件时出现 UnicodeEncodeError

我的目标是编写一个XML文件,其中包含少量标签,其值使用区域语言。我正在使用Python来执行此操作并使用IDLE(PythonGUI)进行编程。当我尝试在xmls文件中写入单词时,出现以下错误:UnicodeEncodeError:'ascii'codeccan'tencodecharactersinposition0-4:ordinalnotinrange(128)目前,我没有使用任何xml编写器库;相反,我打开一个文件“test.xml”并将数据写入其中。该行遇到此错误:f.write(数据)如果我用print语句替换上面的write语句,那么它会在Pythonshell上正确打

python - lxml unicode实体解析问题

我按如下方式使用lxml来解析从另一个系统导出的XML文件:xmldoc=open(filename)etree.parse(xmldoc)但是我得到:lxml.etree.XMLSyntaxError:Entity'eacute'notdefined,line4495,column46显然它在unicode实体名称方面存在问题-但我该如何解决这个问题?通过open()或parse()?编辑:我忘记将我的DTD包含在同一个文件夹中-它现在就在那里并且有以下声明:并且在xmldoc中被引用(并且总是这样):但我仍然遇到同样的问题……DTD是否也需要在Python中声明?

xml - 这个 XPath 有什么问题?

我有这个XML:我有这个LINQ语句:intcount=doc.XPathSelectElements("//category").Elements().Count();我想要的是所有“类别”元素,基本上,扁平化为一个数组,然后我可以foreach。问题是返回的计数值(以及,如果被取消,返回的数组)显示最顶层的类别元素没有被返回。在本例中,我返回了6个“类别”元素,而不是7个。我使用的是从[thispage]学到的XPath(http://www.developer.com/xml/article.php/10929_3383961_1/NET-and-XML-XPath-Querie

xml - 这对 xpath 来说是不可能的吗?

是否可以使用xpath以某种方式转换结果,就像使用SQL一样?鉴于以下情况:例如,如果我想获取所有b节点,但我不希望z属性成为结果的一部分。或者我正在考虑的另一件事是接收所有y节点乘以一个类似/a/b[(@y*2)]的因子,这似乎是不可能的,至少我不知道如何写出来。 最佳答案 正如@svick的回答中所指出的,XPath表达式可以从XML文档中选择一组节点,但它不能更改XML文档或创建新文档。这是一个生成新XML文档的XSLT转换,其中省略了z属性并将y属性乘以2。当此转换应用于提供的XML文档时(更正为格式正确):产生了想要的、正